﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using SIGERP_Entidades;
using SIGERP_Negocio;

namespace SIGERP_Presentacion
{
    public partial class frmIntervencionGrilla : Form
    {
        DataTable dt;
        List<Reclamo> reclamos=new List<Reclamo>();

        public frmIntervencionGrilla()
        {
            InitializeComponent();
            cargarGrilla();
        }

        private void cargarGrilla()
        {
            dt = new DataTable();
            dt.Columns.Add("Nº", typeof(int));
            dt.Columns.Add("Tipo - SubTipo", typeof(string));
            dt.Columns.Add("Fecha de ingreso", typeof(string));
            dt.Columns.Add("Fecha tentativa de resolución", typeof(string));
            dt.Columns.Add("Estado", typeof(string));
            dt.Columns.Add("Reiteraciones", typeof(string));

            reclamos = Reclamos.buscarReclamosEnCursoPorUsuario();
            foreach (Reclamo r in reclamos)
            {
                dt.Rows.Add(r.id,r.subtiporeclamo,r.fecha_ingreso.ToShortDateString(),((DateTime)r.fecha_tentativa).ToShortDateString(),r.estadoreclamo, r.cant_reiteraciones);
            }
            grilla.DataSource = dt;
            grilla.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }

        private void filtrar(object sender, EventArgs e)
        {
            if(dtpDesde.Value==null)
            {
                MessageBox.Show("La fecha desde no puede estar vacía.");
                dtpDesde.Focus();
                return;
            }
            if (dtpHasta.Value == null)
            {
                MessageBox.Show("La fecha hasta no puede estar vacía.");
                dtpHasta.Focus();
                return;
            }

            dt.Clear();
            DateTime desde = (DateTime)dtpDesde.Value;
            DateTime hasta = (DateTime)dtpHasta.Value;

            foreach (Reclamo r in reclamos)
            {
                if (r.fecha_tentativa!=null)
                if (((DateTime)r.fecha_tentativa).Date >= desde.Date && ((DateTime)r.fecha_tentativa).Date <= hasta.Date)
                {
                    dt.Rows.Add(r.id, r.subtiporeclamo, r.fecha_ingreso.ToShortDateString(),((DateTime)r.fecha_tentativa).ToShortDateString(), r.estadoreclamo, r.cant_reiteraciones);
                }
            }
        }

        private void seleccionaReclamo(object sender, DataGridViewCellEventArgs e)
        {
            
            if (grilla.Rows[e.RowIndex].Cells[0] != null) 
            {
                int nroReclamo = Int32.Parse(grilla.Rows[e.RowIndex].Cells[0].Value.ToString());
                Reclamo r = Reclamos.GetOne(nroReclamo);
                frmIntervenirReclamo fir = new frmIntervenirReclamo(r);
                fir.StartPosition = FormStartPosition.CenterParent;
                fir.FormClosed += new System.Windows.Forms.FormClosedEventHandler(cierraForm);
                fir.ShowDialog();
            }
            cargarGrilla();
        }

        private void cierraForm(object sender, EventArgs e)
        {

            if (this.MdiParent.GetType()==(new frmMain()).GetType())
            {
            frmMain frm = (frmMain)this.MdiParent;
            frm.mostrarCantReclamos();
            }
        }
    }
}
